package com.example.lotterysystem.service.dto;

import com.example.lotterysystem.service.enums.ActivityPrizeStatusEnum;
import com.example.lotterysystem.service.enums.ActivityPrizeTiersEnum;
import com.example.lotterysystem.service.enums.ActivityStatusEnum;
import com.example.lotterysystem.service.enums.ActivityUserStatusEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
@Data
public class ActivityDetailDTO {

    //活动ID
    private Long activityId ;
    //活动名称
    private String activityName ;
    //活动描述
    private String desc;
    //活动状态
    private ActivityStatusEnum status;

    // 奖品信息（列表）

    private List<PrizeDTO> prizeDTOList;

    // 人员信息（列表）

    private List<UserDTO> userDTOList;


    /**
     *
     * @return
     */
    public boolean valid(){
        return  status.equals(ActivityStatusEnum.RUNNING);
    }




    /**
     * 奖品信息的数据传输对象
     */
    @Data
    public static class PrizeDTO{
        /**
         * 奖品ID
         */
        private Long prizeId;

        /**
         * 奖品名称
         */
        private String name;

        /**
         * 奖品图片URL
         */
        private String imageUrl;

        /**
         * 奖品价格
         */
        private BigDecimal  price;

        /**
         * 奖品描述
         */
        private String description;

        /**
         * 奖品层级枚举，用于区分奖品的等级
         */
        private ActivityPrizeTiersEnum tiers;

        /**
         * 奖品数量
         */
        private Long prizeAmount;

        /**
         * 奖品状态枚举，用于表示奖品当前的状态（初始化、已被抽取）
         */
        private ActivityPrizeStatusEnum status;
        public Boolean valid() {
            return status.equals(ActivityPrizeStatusEnum.INIT);
        }

    }


    @Data
    public static class UserDTO {
        /**
         * 用户id
         */
        private Long userId;
        /**
         * 姓名
         */
        private String userName;
        /**
         * 状态
         */
        private ActivityUserStatusEnum status;

        public Boolean valid() {
            return status.equals(ActivityUserStatusEnum.INIT);
        }
    }
}
